//#pragma once
//# include <stdio.h>
//# include <stdlib.h>
//# define MaxVertexnum 100
//
//typedef struct EdgeNode   //边结点
//{
//    int weight;     //存放权重
//    struct EdgeNode *next;  //指向边结点
//    int local;     //该边指向的顶点
//}EdgeNode;
///*边链表中边结点包括邻接点域，数据域，链域，邻接点域指示与顶点v邻接的位置(指针)，数据域存放与边相关的数据，如：权重。链域指示与顶点v
//邻接的下一条边的结点*/
//typedef struct VNode   //顶点结点
//{
//    int data;     //顶点数据
//    EdgeNode *firstVertnex;  //指向边
//}VNode,AdjList[MaxVertexnum];
///*表头结点表：由所有表头结点以顺序结构的形式存储，以便可以随机访问任一顶点的边链表
//表头结点包括数据域，链域，数据域存放顶点的一些数据,链域用于指向链表中第一个结点(即与定点v邻接的第一个邻接点)*/
//typedef struct Adjgraph
//{
//    int Nv;
//    int Ne;
//    AdjList List;
//}AdjMGraph;
//
//void InitAdjGraph(AdjMGraph* G)
//{
//    printf("请输入顶点数和边数(空格分隔)!\n");
//    int Nv, Ne;
//    scanf("%d %d", &G->Nv, &G->Ne);
//    printf("请输入顶点数据:\n");
//    for (int i = 1; i <= G->Nv; i++)
//    {
//        printf("第%d个顶点数据为:\n",i);
//        scanf("%d", &G->List[i].data);   //收入每一个顶点的数据
//        G->List[i].firstVertnex = NULL;   //每个顶点的指针域置为空
//    }
//    getchar();
//}
///*接下来要进行放入有效数据，把权重放入邻接表中,由于是生成无向图，所以此时要生成两个结点*/
//void CreateAdjGraph(AdjMGraph *G)
//{
//    printf("一共有%d条边!\n", G->Ne);
//    printf("请输入两个顶点以及二者之间的权重(中间用空格分隔):\n");
//    int W, V,weight;
//    for (int i = 1; i <= G->Ne; i++)
//    {
//        scanf("%d %d %d", &W, &V,&weight);
//        EdgeNode *p = (EdgeNode*)malloc(sizeof(EdgeNode));
//        p->local = V;
//        p->weight = weight;
//        p->next = G->List[W].firstVertnex;
//        G->List[W].firstVertnex= p;
//
//
//        EdgeNode *q = (EdgeNode*)malloc(sizeof(EdgeNode));
//        q->local = W;
//        q->weight = weight;
//        q->next = G->List[V].firstVertnex;
//        G->List[V].firstVertnex = q;
//
//    }
//}